@怪人
2年前 提问
1个回答

工控系统应用程序中有哪些漏洞

安全侠
2年前

工控系统应用程序中有以下漏洞:

  • 缓冲区溢出的漏洞:程序经过编译后包含不同的段,其中很多段都包含了接收外部系统(文件、网络、键盘等)填充数据的缓冲区。一些比较有趣的段是栈段、堆段、未初始化的静态变量段向下生长(用于静态初始化的变量)以及环境段。每个段的作用各不相同,因此程序和操作系统对不同段的处理方式也不一样。有大量文献介绍如何向这些段注入数据以控制应用程序的后续执行,因此这种攻击形式又称为软件攻击。

  • 整型溢出、上溢、下溢、截断与符号失配:整型是编程中基本的数据类型,因此,如果要对整型的不正确使用进行漏洞利用,那么理解整型如何工作是非常重要的。首先需要认识到,不同于数学中的整数,计算机中的整型数据不能一直增长到无穷大。基于CPU的架构,整型通常是固定长度的。鉴于这种类型的漏洞非常微妙并且非常底层,可以想象到在工控系统应用程序中很可能存在这些漏洞。

  • 指针操纵:借助指针能够实现各种有趣的数据结构和优化,但是如果对指针处理不当,则可能导致整个程序的崩溃。攻击者还可以借助某个数值来绕过安全保护(通过跳转到函数中间;该安全保护在敏感操作之前进行安全检査),也可以借助某个数值使其指向攻击者控制的数据缓冲区,从而导致任意代码执行漏洞。

  • 格式化字符串:格式化字符串是用于指示数据格式的具有特殊结构的字符串。与之前提到的某些漏洞一样,格式化字符串漏洞源于直接使用了用户提供的数据,而不对其进行验证。在这种情况下,用户数据就成了格式化字符串的参数。一旦攻击者知道缓冲区在哪里(无论是某一个内存地址的绝对地址还是相对地址),攻击者就可以将执行流导向那里。如果缓冲区中包含恶意指令,那么在某种程度上就能够实现对机器的有效漏洞利用,从而导致该机器完全处于攻击者的控制之下。攻击者也可以通过覆盖指针将执行流重定向到含有恶意指令的缓冲区。

  • 目录遍历:有很多实例程序出于这样或那样的原因需要访问文件系统,有些程序可能需要存储,目录遍历漏洞就是这些漏洞中的一种。无论出于哪种原因,程序员都需要使用字符串来指示文件的路径。当用户输入的数据对路径字符串可能的编码形式造成影响时,是因为访问大多数文件系统时遇到了特殊的字符和字符串。如果攻击者自己也购买了一套应用程序或设备,对应用程序、设备固件进行了深入研究,从而实现对关键文件的篡改,并最终对用户的应用程序或设备固件进行了替换,使得程序或设备在执行其所有正常功能的同时,还在后台执行其他任务,该文件就可能一直运行,而没有人注意到数据已经泄露或者已经被植入了黑客稍后会用到的后门。任何能够导致攻击者代码在目标系统上运行的漏洞都是危险的。

  • DLL劫持:作为软件设计工作的一部分,通常会对常用组件进行分解,从而实现组件的多处复用。这一原则无论对于代码片段,还是对于操作系统级别的软件,抑或是介于两者之间的其他软件都是适用的。减小程序规模、提高代码模块化的常用方法之一是使用动态链接库文件。从攻击者的角度来看,DLL劫持是一种获得程序访问权限的好方法,并且同缓冲区溢出、格式化字符串等方法相比,DLL劫持更加可靠、稳定。在这种情况下,程序可以有意加载攻击者的代码并直接对其进行调用,程序只需要将执行流程转交给恶意代码就可以了。

  • 暴力攻击:暴力通常意味着尝试每一个可能的选项,从中找出最终能够奏效的选项。此方法通常用于口令破解。在某种程度上,DoS攻击也可以应用暴力攻击,因为它们倾向于持续发送一段代码,或者不断消耗内存直到目标崩溃。

加强工业网络方法有以下这些:

  • 工业主机白名单控制:工业主机由于长期不间断运行,不能及时打补丁,并且受到联网条件的限制,无法实时更新病毒库,因此传统杀毒机制不适用于工业主机。比较有效的方式是采用白名单控制技术,对工业软件相关的进程文件进行扫描识别,为每个可信文件生成唯一的特征码,特征码的集合构成特征库,即白名单。只有白名单内的软件才可以运行,其他进程都被阻止,以防止病毒、木马、违规软件的攻击。

  • 工控协议识别与控制:为了保障数据传输的可靠性与实时性,工业生产网已发展了多套成熟的通信协议,主流的有几十种,大致分为工业总线协议和工业以太网协议两大类,如Modbus、S7、OPC、Profinet、IEC104等。工控协议的识别能力是安全设备工作的基础,也是评价产品能力的重要指标。

  • 工控漏洞利用识别与防护:工控系统漏洞是工控网络安全问题的主要来源。由于工控设备很少升级或者不升级,因此普遍存在可被攻击的漏洞,而由于技术的专业性和封闭性,这些漏洞很容易被作为0day利用。因此工控安全产品对工控漏洞利用行为的识别能力,以及相应的防护能力,是工控安全防护能力建设的核心。

  • 工控网络流量采集与分析:获取网络流量是发现网络攻击的前提,流量采集与分析广泛应用于网络安全方案,是一项比较成熟的技术。对于工控网络,除了基本的流量识别与统计分析外,还需要理解生产过程的操作功能码,根据业务逻辑判断是否发生异常。此外,根据设备间通信的规律建立流量基线模型,对多源数据进行关联分析,能够有效地识别异常行为和网络攻击。

  • 工业网络安全态势感知:态势感知是安全防御的重要手段,对于工控网络,通过安全态势感知平台,可以直观地了解网络中的资产分布、漏洞分布、网络攻击事件,对网络的整体风险水平进行量化评估。态势感知平台需要多种核心能力支持,包括完善的数据获取能力、大数据分析与建模能力、网络攻击溯源分析能力、安全事件闭环处理能力等,是工控网络安全防护的核心产品。